/*
  Copyright (c), 2001-2024, Shenshu Tech. Co., Ltd.
 */

#ifndef HI_COMMON_VENC_H
#define HI_COMMON_VENC_H

#include "hi_common_rc.h"
#include "hi_common.h"
#include "hi_common_video.h"
#include "hi_common_vb.h"
#include "ot_common_venc.h"

#ifdef __cplusplus
extern "C" {
#endif

#define HI_ERR_VENC_INVALID_CHN_ID OT_ERR_VENC_INVALID_CHN_ID
#define HI_ERR_VENC_ILLEGAL_PARAM OT_ERR_VENC_ILLEGAL_PARAM
#define HI_ERR_VENC_EXIST OT_ERR_VENC_EXIST
#define HI_ERR_VENC_UNEXIST OT_ERR_VENC_UNEXIST
#define HI_ERR_VENC_NULL_PTR OT_ERR_VENC_NULL_PTR
#define HI_ERR_VENC_NOT_CFG OT_ERR_VENC_NOT_CFG
#define HI_ERR_VENC_NOT_SUPPORT OT_ERR_VENC_NOT_SUPPORT
#define HI_ERR_VENC_NOT_PERM OT_ERR_VENC_NOT_PERM
#define HI_ERR_VENC_NO_MEM OT_ERR_VENC_NO_MEM
#define HI_ERR_VENC_NO_BUF OT_ERR_VENC_NO_BUF
#define HI_ERR_VENC_BUF_EMPTY OT_ERR_VENC_BUF_EMPTY
#define HI_ERR_VENC_BUF_FULL OT_ERR_VENC_BUF_FULL
#define HI_ERR_VENC_SYS_NOT_READY OT_ERR_VENC_SYS_NOT_READY
#define HI_ERR_VENC_BUSY OT_ERR_VENC_BUSY
#define HI_ERR_VENC_SIZE_NOT_ENOUGH OT_ERR_VENC_SIZE_NOT_ENOUGH
#define HI_VENC_MAX_PACK_INFO_NUM OT_VENC_MAX_PACK_INFO_NUM
#define HI_VENC_MAX_MPF_NUM OT_VENC_MAX_MPF_NUM
#define HI_VENC_PRORES_MAX_ID_CHAR_NUM OT_VENC_PRORES_MAX_ID_CHAR_NUM
#define HI_VENC_SCALING_LIST_SIZE_16 OT_VENC_SCALING_LIST_SIZE_16
#define HI_VENC_SCALING_LIST_SIZE_64 OT_VENC_SCALING_LIST_SIZE_64
#define HI_VENC_JPEG_QT_COEF_NUM OT_VENC_JPEG_QT_COEF_NUM
#define HI_VENC_MJPEG_QT_COEF_NUM OT_VENC_MJPEG_QT_COEF_NUM
#define HI_VENC_QP_HIST_NUM OT_VENC_QP_HIST_NUM
#define HI_VENC_H264_QP_HIST_NUM OT_VENC_H264_QP_HIST_NUM
#define HI_VENC_H265_QP_HIST_NUM OT_VENC_H265_QP_HIST_NUM
#define HI_VENC_SVAC3_QP_HIST_NUM OT_VENC_SVAC3_QP_HIST_NUM
#define HI_VENC_MAX_ROI_NUM OT_VENC_MAX_ROI_NUM
#define HI_VENC_MAX_JPEG_ROI_NUM OT_VENC_MAX_JPEG_ROI_NUM
#define HI_VENC_MAX_SSE_NUM OT_VENC_MAX_SSE_NUM
#define HI_VENC_MD_THRESHOLD_NUM OT_VENC_MD_THRESHOLD_NUM
#define HI_VENC_MD_LEVEL_NUM OT_VENC_MD_LEVEL_NUM
#define HI_VENC_MAX_SVC_RECT_NUM OT_VENC_MAX_SVC_RECT_NUM
#define HI_VENC_MAX_MOSAIC_RECT_NUM OT_VENC_MAX_MOSAIC_RECT_NUM
#define HI_VENC_MAX_FRAME_NUM OT_VENC_MAX_FRAME_NUM
#define HI_VENC_MAX_SVC_REF_NUM OT_VENC_MAX_SVC_REF_NUM
#define HI_VENC_MIN_SVC_REF_NUM  OT_VENC_MIN_SVC_REF_NUM
#define HI_VENC_MAX_SVC_V1_RECT_TYPE OT_VENC_MAX_SVC_V1_RECT_TYPE
#define HI_VENC_MAX_BATCH_CROP_RECT_NUM OT_VENC_MAX_BATCH_CROP_RECT_NUM
#define HI_VENC_MAX_BATCH_CROP_RECT_NUM OT_VENC_MAX_BATCH_CROP_RECT_NUM
#define HI_VENC_MB_SIZE OT_VENC_MB_SIZE
#define HI_VENC_RECV_SRC0 OT_VENC_RECV_SRC0
#define HI_VENC_RECV_SRC1 OT_VENC_RECV_SRC1
#define HI_VENC_RECV_SRC2 OT_VENC_RECV_SRC2
#define HI_VENC_RECV_SRC3 OT_VENC_RECV_SRC3
#define HI_VENC_RECV_BUTT OT_VENC_RECV_BUTT
typedef ot_venc_recv_src hi_venc_recv_src;
#define HI_VENC_H264_NALU_B_SLICE OT_VENC_H264_NALU_B_SLICE
#define HI_VENC_H264_NALU_P_SLICE OT_VENC_H264_NALU_P_SLICE
#define HI_VENC_H264_NALU_I_SLICE OT_VENC_H264_NALU_I_SLICE
#define HI_VENC_H264_NALU_IDR_SLICE OT_VENC_H264_NALU_IDR_SLICE
#define HI_VENC_H264_NALU_SEI OT_VENC_H264_NALU_SEI
#define HI_VENC_H264_NALU_SPS OT_VENC_H264_NALU_SPS
#define HI_VENC_H264_NALU_PPS OT_VENC_H264_NALU_PPS
#define HI_VENC_H264_NALU_BUTT OT_VENC_H264_NALU_BUTT
typedef ot_venc_h264_nalu_type hi_venc_h264_nalu_type;
#define HI_VENC_H265_NALU_B_SLICE OT_VENC_H265_NALU_B_SLICE
#define HI_VENC_H265_NALU_P_SLICE OT_VENC_H265_NALU_P_SLICE
#define HI_VENC_H265_NALU_I_SLICE OT_VENC_H265_NALU_I_SLICE
#define HI_VENC_H265_NALU_IDR_SLICE OT_VENC_H265_NALU_IDR_SLICE
#define HI_VENC_H265_NALU_VPS OT_VENC_H265_NALU_VPS
#define HI_VENC_H265_NALU_SPS OT_VENC_H265_NALU_SPS
#define HI_VENC_H265_NALU_PPS OT_VENC_H265_NALU_PPS
#define HI_VENC_H265_NALU_SEI OT_VENC_H265_NALU_SEI
#define HI_VENC_H265_NALU_ENHANCE OT_VENC_H265_NALU_ENHANCE
#define HI_VENC_H265_NALU_BUTT OT_VENC_H265_NALU_BUTT
typedef ot_venc_h265_nalu_type hi_venc_h265_nalu_type;
#define HI_VENC_SVAC3_NALU_FORBIDDEN OT_VENC_SVAC3_NALU_FORBIDDEN
#define HI_VENC_SVAC3_NALU_NRAP_PATCH OT_VENC_SVAC3_NALU_NRAP_PATCH
#define HI_VENC_SVAC3_NALU_RAPI_PATCH OT_VENC_SVAC3_NALU_RAPI_PATCH
#define HI_VENC_SVAC3_NALU_PIC_HEAD OT_VENC_SVAC3_NALU_PIC_HEAD
#define HI_VENC_SVAC3_NALU_IDR_PATCH OT_VENC_SVAC3_NALU_IDR_PATCH
#define HI_VENC_SVAC3_NALU_EXTENSION OT_VENC_SVAC3_NALU_EXTENSION
#define HI_VENC_SVAC3_NALU_SEI OT_VENC_SVAC3_NALU_SEI
#define HI_VENC_SVAC3_NALU_SPS OT_VENC_SVAC3_NALU_SPS
#define HI_VENC_SVAC3_NALU_PPS OT_VENC_SVAC3_NALU_PPS
#define HI_VENC_SVAC3_NALU_SEC_PS OT_VENC_SVAC3_NALU_SEC_PS
#define HI_VENC_SVAC3_NALU_AUTH_DATA OT_VENC_SVAC3_NALU_AUTH_DATA
#define HI_VENC_SVAC3_NALU_EOS OT_VENC_SVAC3_NALU_EOS
#define HI_VENC_SVAC3_NALU_CRR_NDP_PATCH OT_VENC_SVAC3_NALU_CRR_NDP_PATCH
#define HI_VENC_SVAC3_NALU_RL_PATCH OT_VENC_SVAC3_NALU_RL_PATCH
#define HI_VENC_SVAC3_NALU_PIC_DL OT_VENC_SVAC3_NALU_PIC_DL
#define HI_VENC_SVAC3_NALU_EOCVS OT_VENC_SVAC3_NALU_EOCVS
#define HI_VENC_SVAC3_NALU_CRR_DP_PATCH OT_VENC_SVAC3_NALU_CRR_DP_PATCH
#define HI_VENC_SVAC3_NALU_CRR_DL_PATCH OT_VENC_SVAC3_NALU_CRR_DL_PATCH
#define HI_VENC_SVAC3_NALU_CRR_PRIVACY OT_VENC_SVAC3_NALU_CRR_PRIVACY
#define HI_VENC_SVAC3_NALU_BUTT OT_VENC_SVAC3_NALU_BUTT
typedef ot_venc_svac3_nalu_type hi_venc_svac3_nalu_type;
#define HI_VENC_H264_REF_SLICE_FOR_1X OT_VENC_H264_REF_SLICE_FOR_1X
#define HI_VENC_H264_REF_SLICE_FOR_2X OT_VENC_H264_REF_SLICE_FOR_2X
#define HI_VENC_H264_REF_SLICE_FOR_4X OT_VENC_H264_REF_SLICE_FOR_4X
#define HI_VENC_H264_REF_SLICE_FOR_BUTT OT_VENC_H264_REF_SLICE_FOR_BUTT
typedef ot_venc_h264_ref_slice_type hi_venc_h264_ref_slice_type;
#define HI_VENC_JPEG_PACK_ECS OT_VENC_JPEG_PACK_ECS
#define HI_VENC_JPEG_PACK_APP OT_VENC_JPEG_PACK_APP
#define HI_VENC_JPEG_PACK_VDO OT_VENC_JPEG_PACK_VDO
#define HI_VENC_JPEG_PACK_PIC OT_VENC_JPEG_PACK_PIC
#define HI_VENC_JPEG_PACK_DCF OT_VENC_JPEG_PACK_DCF
#define HI_VENC_JPEG_PACK_DCF_PIC OT_VENC_JPEG_PACK_DCF_PIC
#define HI_VENC_JPEG_PACK_BUTT OT_VENC_JPEG_PACK_BUTT
typedef ot_venc_jpege_pack_type hi_venc_jpege_pack_type;
#define HI_VENC_PRORES_PACK_PIC OT_VENC_PRORES_PACK_PIC
#define HI_VENC_PRORES_PACK_BUTT OT_VENC_PRORES_PACK_BUTT
typedef ot_venc_prores_pack_type hi_venc_prores_pack_type;
#define HI_VENC_MOSAIC_MODE_RECT OT_VENC_MOSAIC_MODE_RECT
#define HI_VENC_MOSAIC_MODE_MAP OT_VENC_MOSAIC_MODE_MAP
#define HI_VENC_MOSAIC_MODE_BUTT OT_VENC_MOSAIC_MODE_BUTT
typedef ot_venc_mosaic_mode hi_venc_mosaic_mode;
typedef ot_venc_data_type hi_venc_data_type;
typedef ot_venc_pack_info hi_venc_pack_info;
typedef ot_venc_pack hi_venc_pack;
#define HI_VENC_BASE_IDR_SLICE OT_VENC_BASE_IDR_SLICE
#define HI_VENC_BASE_P_SLICE_REF_TO_IDR OT_VENC_BASE_P_SLICE_REF_TO_IDR
#define HI_VENC_BASE_P_SLICE_REF_BY_BASE OT_VENC_BASE_P_SLICE_REF_BY_BASE
#define HI_VENC_BASE_P_SLICE_REF_BY_ENHANCE OT_VENC_BASE_P_SLICE_REF_BY_ENHANCE
#define HI_VENC_ENHANCE_P_SLICE_REF_BY_ENHANCE OT_VENC_ENHANCE_P_SLICE_REF_BY_ENHANCE
#define HI_VENC_ENHANCE_P_SLICE_NOT_FOR_REF OT_VENC_ENHANCE_P_SLICE_NOT_FOR_REF
#define HI_VENC_P_SLICE_BUTT OT_VENC_P_SLICE_BUTT
typedef ot_venc_ref_type hi_venc_ref_type;
typedef ot_venc_h264_stream_info hi_venc_h264_stream_info;
typedef ot_venc_h265_stream_info hi_venc_h265_stream_info;
typedef ot_venc_svac3_stream_info hi_venc_svac3_stream_info;
typedef ot_venc_sse_info hi_venc_sse_info;
typedef ot_venc_h264_adv_stream_info hi_venc_h264_adv_stream_info;
typedef ot_venc_h265_adv_stream_info hi_venc_h265_adv_stream_info;
typedef ot_venc_svac3_adv_stream_info hi_venc_svac3_adv_stream_info;
typedef ot_venc_prores_stream_info hi_venc_prores_stream_info;
typedef ot_venc_jpeg_stream_info hi_venc_jpeg_stream_info;
typedef ot_venc_stream hi_venc_stream;
typedef ot_venc_stream_info hi_venc_stream_info;
typedef ot_venc_mpf_cfg hi_venc_mpf_cfg;
#define HI_VENC_PIC_RECV_SINGLE OT_VENC_PIC_RECV_SINGLE
#define HI_VENC_PIC_RECV_MULTI OT_VENC_PIC_RECV_MULTI
#define HI_VENC_PIC_RECV_BUTT OT_VENC_PIC_RECV_BUTT
typedef ot_venc_pic_recv_mode hi_venc_pic_recv_mode;
typedef ot_venc_jpeg_attr hi_venc_jpeg_attr;
typedef ot_venc_h264_attr hi_venc_h264_attr;
typedef ot_venc_h265_attr hi_venc_h265_attr;
typedef ot_venc_svac3_attr hi_venc_svac3_attr;
#define HI_VENC_PRORES_FRAME_RATE_UNKNOWN OT_VENC_PRORES_FRAME_RATE_UNKNOWN
#define HI_VENC_PRORES_FRAME_RATE_23_976 OT_VENC_PRORES_FRAME_RATE_23_976
#define HI_VENC_PRORES_FRAME_RATE_24 OT_VENC_PRORES_FRAME_RATE_24
#define HI_VENC_PRORES_FRAME_RATE_25 OT_VENC_PRORES_FRAME_RATE_25
#define HI_VENC_PRORES_FRAME_RATE_29_97 OT_VENC_PRORES_FRAME_RATE_29_97
#define HI_VENC_PRORES_FRAME_RATE_30 OT_VENC_PRORES_FRAME_RATE_30
#define HI_VENC_PRORES_FRAME_RATE_50 OT_VENC_PRORES_FRAME_RATE_50
#define HI_VENC_PRORES_FRAME_RATE_59_94 OT_VENC_PRORES_FRAME_RATE_59_94
#define HI_VENC_PRORES_FRAME_RATE_60 OT_VENC_PRORES_FRAME_RATE_60
#define HI_VENC_PRORES_FRAME_RATE_100 OT_VENC_PRORES_FRAME_RATE_100
#define HI_VENC_PRORES_FRAME_RATE_119_88 OT_VENC_PRORES_FRAME_RATE_119_88
#define HI_VENC_PRORES_FRAME_RATE_120 OT_VENC_PRORES_FRAME_RATE_120
#define HI_VENC_PRORES_FRAME_RATE_BUTT OT_VENC_PRORES_FRAME_RATE_BUTT
typedef ot_venc_prores_frame_rate hi_venc_prores_frame_rate;
#define HI_VENC_PRORES_ASPECT_RATIO_UNKNOWN OT_VENC_PRORES_ASPECT_RATIO_UNKNOWN
#define HI_VENC_PRORES_ASPECT_RATIO_SQUARE OT_VENC_PRORES_ASPECT_RATIO_SQUARE
#define HI_VENC_PRORES_ASPECT_RATIO_4_3 OT_VENC_PRORES_ASPECT_RATIO_4_3
#define HI_VENC_PRORES_ASPECT_RATIO_16_9 OT_VENC_PRORES_ASPECT_RATIO_16_9
#define HI_VENC_PRORES_ASPECT_RATIO_BUTT OT_VENC_PRORES_ASPECT_RATIO_BUTT
typedef ot_venc_prores_aspect_ratio hi_venc_prores_aspect_ratio;
typedef ot_venc_prores_attr hi_venc_prores_attr;
typedef ot_venc_attr hi_venc_attr;
#define HI_VENC_GOP_MODE_NORMAL_P OT_VENC_GOP_MODE_NORMAL_P
#define HI_VENC_GOP_MODE_DUAL_P OT_VENC_GOP_MODE_DUAL_P
#define HI_VENC_GOP_MODE_SMART_P OT_VENC_GOP_MODE_SMART_P
#define HI_VENC_GOP_MODE_SMART_CRR OT_VENC_GOP_MODE_SMART_CRR
#define HI_VENC_GOP_MODE_ADV_SMART_P OT_VENC_GOP_MODE_ADV_SMART_P
#define HI_VENC_GOP_MODE_BIPRED_B OT_VENC_GOP_MODE_BIPRED_B
#define HI_VENC_GOP_MODE_LOW_DELAY_B OT_VENC_GOP_MODE_LOW_DELAY_B
#define HI_VENC_GOP_MODE_BUTT OT_VENC_GOP_MODE_BUTT
typedef ot_venc_gop_mode hi_venc_gop_mode;
typedef ot_venc_gop_normal_p hi_venc_gop_normal_p;
typedef ot_venc_gop_dual_p hi_venc_gop_dual_p;
typedef ot_venc_gop_smart_p hi_venc_gop_smart_p;
#define HI_VENC_CRR_RECODE_DISABLE OT_VENC_CRR_RECODE_DISABLE
#define HI_VENC_CRR_RECODE_NORMAL OT_VENC_CRR_RECODE_NORMAL
#define HI_VENC_CRR_RECODE_COPY OT_VENC_CRR_RECODE_COPY
#define HI_VENC_CRR_RECODE_WRITE_BACK OT_VENC_CRR_RECODE_WRITE_BACK
#define HI_VENC_CRR_RECODE_BUTT OT_VENC_CRR_RECODE_BUTT
typedef ot_venc_crr_recode_strategy hi_venc_crr_recode_strategy;
typedef ot_venc_gop_smart_crr hi_venc_gop_smart_crr;
typedef ot_venc_gop_adv_smart_p hi_venc_gop_adv_smart_p;
typedef ot_venc_gop_bipred_b hi_venc_gop_bipred_b;
typedef ot_venc_gop_attr hi_venc_gop_attr;
typedef ot_venc_chn_attr hi_venc_chn_attr;
typedef ot_venc_start_param hi_venc_start_param;
typedef ot_venc_chn_status hi_venc_chn_status;
typedef ot_venc_h264_intra_pred hi_venc_h264_intra_pred;
typedef ot_venc_h264_trans hi_venc_h264_trans;
typedef ot_venc_h264_entropy hi_venc_h264_entropy;
typedef ot_venc_h264_poc hi_venc_h264_poc;
typedef ot_venc_h264_dblk hi_venc_h264_dblk;
typedef ot_venc_h264_vui_time_info hi_venc_h264_vui_time_info;
typedef ot_venc_vui_aspect_ratio hi_venc_vui_aspect_ratio;
typedef ot_venc_vui_video_signal hi_venc_vui_video_signal;
typedef ot_venc_vui_bitstream_restric hi_venc_vui_bitstream_restric;
typedef ot_venc_h264_vui hi_venc_h264_vui;
typedef ot_venc_h265_vui_time_info hi_venc_h265_vui_time_info;
typedef ot_venc_h265_vui hi_venc_h265_vui;
typedef ot_venc_jpeg_param hi_venc_jpeg_param;
typedef ot_venc_mjpeg_param hi_venc_mjpeg_param;
typedef ot_venc_roi_attr hi_venc_roi_attr;
#define HI_VENC_ROI_FOR_I OT_VENC_ROI_FOR_I
#define HI_VENC_ROI_FOR_P_B OT_VENC_ROI_FOR_P_B
#define HI_VENC_ROI_FOR_VI OT_VENC_ROI_FOR_VI
#define HI_VENC_ROI_FOR_BUTT OT_VENC_ROI_FOR_BUTT
typedef ot_venc_roi_for_frame hi_venc_roi_for_frame;
typedef ot_venc_roi_attr_ex hi_venc_roi_attr_ex;
typedef ot_venc_jpeg_roi_attr hi_venc_jpeg_roi_attr;
typedef ot_venc_jpeg_roi_adv_attr hi_venc_jpeg_roi_adv_attr;
typedef ot_venc_roi_bg_frame_rate hi_venc_roi_bg_frame_rate;
typedef ot_venc_ref_param hi_venc_ref_param;
typedef ot_venc_jpeg_dering_level hi_venc_jpeg_dering_level;
typedef ot_venc_jpeg_dering_attr hi_venc_jpeg_dering_attr;
typedef ot_venc_jpeg_dering_level hi_venc_jpeg_dering_level;
#define HI_VENC_JPEG_DERING_LEVEL_0 OT_VENC_JPEG_DERING_LEVEL_0
#define HI_VENC_JPEG_DERING_LEVEL_1 OT_VENC_JPEG_DERING_LEVEL_1
#define HI_VENC_JPEG_DERING_LEVEL_2 OT_VENC_JPEG_DERING_LEVEL_2
#define HI_VENC_JPEG_DERING_LEVEL_3 OT_VENC_JPEG_DERING_LEVEL_3
#define HI_VENC_JPEG_DERING_LEVEL_BUTT OT_VENC_JPEG_DERING_LEVEL_BUTT
#define HI_VENC_JPEG_ENC_ALL OT_VENC_JPEG_ENC_ALL
#define HI_VENC_JPEG_ENC_SNAP OT_VENC_JPEG_ENC_SNAP
#define HI_VENC_JPEG_ENC_BUTT OT_VENC_JPEG_ENC_BUTT
typedef ot_venc_jpeg_enc_mode hi_venc_jpeg_enc_mode;
typedef ot_venc_stream_buf_info hi_venc_stream_buf_info;
typedef ot_venc_h265_pu hi_venc_h265_pu;
typedef ot_venc_h265_trans hi_venc_h265_trans;
typedef ot_venc_h265_entropy hi_venc_h265_entropy;
typedef ot_venc_h265_dblk hi_venc_h265_dblk;
typedef ot_venc_h265_sao hi_venc_h265_sao;
#define HI_VENC_INTRA_REFRESH_ROW OT_VENC_INTRA_REFRESH_ROW
#define HI_VENC_INTRA_REFRESH_COLUMN OT_VENC_INTRA_REFRESH_COLUMN
#define HI_VENC_INTRA_REFRESH_BUTT OT_VENC_INTRA_REFRESH_BUTT
typedef ot_venc_intra_refresh_mode hi_venc_intra_refresh_mode;
typedef ot_venc_intra_refresh hi_venc_intra_refresh;
#define HI_VENC_MOD_VENC OT_VENC_MOD_VENC
#define HI_VENC_MOD_H264 OT_VENC_MOD_H264
#define HI_VENC_MOD_H265 OT_VENC_MOD_H265
#define HI_VENC_MOD_JPEG OT_VENC_MOD_JPEG
#define HI_VENC_MOD_RC OT_VENC_MOD_RC
#define HI_VENC_MOD_SVAC3 OT_VENC_MOD_SVAC3
#define HI_VENC_MOD_BUTT OT_VENC_MOD_BUTT
typedef ot_venc_mod_type hi_venc_mod_type;
typedef ot_venc_venc_mod_param hi_venc_venc_mod_param;
typedef ot_venc_h264_mod_param hi_venc_h264_mod_param;
typedef ot_venc_h265_mod_param hi_venc_h265_mod_param;
typedef ot_venc_svac3_mod_param hi_venc_svac3_mod_param;
typedef ot_venc_jpeg_mod_param hi_venc_jpeg_mod_param;
typedef ot_venc_mod_param hi_venc_mod_param;
#define HI_VENC_FRAME_TYPE_NONE OT_VENC_FRAME_TYPE_NONE
#define HI_VENC_FRAME_TYPE_IDR OT_VENC_FRAME_TYPE_IDR
#define HI_VENC_FRAME_TYPE_P_SKIP OT_VENC_FRAME_TYPE_P_SKIP
#define HI_VENC_FRAME_TYPE_BUTT OT_VENC_FRAME_TYPE_BUTT
typedef ot_venc_frame_type hi_venc_frame_type;
typedef ot_venc_user_rc_info hi_venc_user_rc_info;
typedef ot_venc_user_qpmap hi_venc_user_qpmap;
typedef ot_venc_user_roimap hi_venc_user_roimap;
typedef ot_venc_user_frame_info hi_venc_user_frame_info;
typedef ot_venc_mosaic_pixel_yuv hi_venc_mosaic_pixel_yuv;
typedef ot_venc_mosaic_rect hi_venc_mosaic_rect;
typedef ot_venc_mosaic_map hi_venc_mosaic_map;
typedef ot_venc_mosaic_info hi_venc_mosaic_info;
typedef ot_venc_multi_frame_info hi_venc_multi_frame_info;
typedef ot_venc_batch_crop_info hi_venc_batch_crop_info;
typedef ot_venc_frame_batch_crop_info hi_venc_frame_batch_crop_info;
typedef ot_venc_chn_config hi_venc_chn_config;
#define HI_VENC_DUPLICATE_FRAME_STRATEGE_RECODE OT_VENC_DUPLICATE_FRAME_STRATEGE_RECODE
#define HI_VENC_DUPLICATE_FRAME_STRATEGE_COPY OT_VENC_DUPLICATE_FRAME_STRATEGE_COPY
#define HI_VENC_DUPLICATE_FRAME_STRATEGE_BUTT OT_VENC_DUPLICATE_FRAME_STRATEGE_BUTT
typedef ot_venc_duplicate_frame_strategy hi_venc_duplicate_frame_strategy;
typedef ot_venc_sse_rgn hi_venc_sse_rgn;
typedef ot_venc_chn_param hi_venc_chn_param;
typedef ot_venc_fg_protect hi_venc_fg_protect;
#define HI_VENC_SCENE_0 OT_VENC_SCENE_0
#define HI_VENC_SCENE_1 OT_VENC_SCENE_1
#define HI_VENC_SCENE_2 OT_VENC_SCENE_2
#define HI_VENC_SCENE_BUTT OT_VENC_SCENE_BUTT
typedef ot_venc_scene_mode hi_venc_scene_mode;
typedef ot_venc_cu_pred hi_venc_cu_pred;
typedef ot_venc_skip_bias hi_venc_skip_bias;
typedef ot_venc_chn_pool hi_venc_chn_pool;
typedef ot_venc_slice_split hi_venc_slice_split;
typedef ot_venc_param_set_id hi_venc_param_set_id;
typedef ot_venc_search_window hi_venc_search_window;
#define HI_VENC_SVC_ROI_TYPE_RECT OT_VENC_SVC_ROI_TYPE_RECT
#define HI_VENC_SVC_ROI_TYPE_MASK OT_VENC_SVC_ROI_TYPE_MASK
#define HI_VENC_SVC_ROI_TYPE_BUTT OT_VENC_SVC_ROI_TYPE_BUTT
typedef ot_venc_svc_roi_type hi_venc_svc_roi_type;
typedef ot_venc_svc_mask_info hi_venc_svc_mask_info;
typedef ot_venc_svc_rect_type hi_venc_svc_rect_type;
typedef ot_venc_svc_map_param hi_venc_svc_map_param;
typedef ot_venc_svc_rect_info hi_venc_svc_rect_info;
typedef ot_venc_svc_param hi_venc_svc_param;
typedef ot_venc_svc_param_v1 hi_venc_svc_param_v1;
typedef ot_venc_svc_param_v2 hi_venc_svc_param_v2;
typedef ot_venc_svc_param_ex hi_venc_svc_param_ex;
typedef ot_venc_deblur_param hi_venc_deblur_param;
typedef ot_venc_deblur_near_bg hi_venc_deblur_near_bg;
typedef ot_venc_deblur_far_bg hi_venc_deblur_far_bg;
typedef ot_venc_adv_deblur hi_venc_adv_deblur;
#define HI_VENC_MD_SAD_MODE_ZERO OT_VENC_MD_SAD_MODE_ZERO
#define HI_VENC_MD_SAD_MODE_SEARCH OT_VENC_MD_SAD_MODE_SEARCH
#define HI_VENC_MD_SAD_MODE_BUTT OT_VENC_MD_SAD_MODE_BUTT
typedef ot_venc_md_sad_mode hi_venc_md_sad_mode;
typedef ot_venc_md_param hi_venc_md_param;
#define HI_VENC_MAX_QUALITY_BALANCE_NUM OT_VENC_MAX_QUALITY_BALANCE_NUM
#define HI_VENC_MAX_WATERMARK_INFO_NUM OT_VENC_MAX_WATERMARK_INFO_NUM
#define HI_VENC_MAX_WATERMARK_SEED_NUM OT_VENC_MAX_WATERMARK_SEED_NUM
typedef ot_venc_quality_balance hi_venc_quality_balance;
typedef ot_venc_watermark hi_venc_watermark;
typedef ot_venc_watermark_roi hi_venc_watermark_roi;
typedef ot_omx_user_rc_info hi_omx_user_rc_info;
typedef ot_omx_user_frame_info hi_omx_user_frame_info;
typedef ot_venc_svac3_trans hi_venc_svac3_trans;
typedef ot_venc_svac3_dblk hi_venc_svac3_dblk;
typedef ot_venc_svac3_sao hi_venc_svac3_sao;
typedef ot_venc_svac3_emulation hi_venc_svac3_emulation;

#ifdef __cplusplus
}
#endif
#endif /* HI_COMMON_VENC_H */
